﻿/*************************************
 * Creator:SunnyPaine
 * DateTime:2022/8/22 15:21:52
 * Description:<Description>
 * CopyRight:
 * ***********************************/

using System.Collections.Generic;

namespace SunnyPaine.Autofac.Extension.SqlSugar.Service
{
    /// <summary>
    /// 业务逻辑层基础接口。
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IService<T>
    {
        /// <summary>
        /// 新增数据。
        /// </summary>
        /// <param name="data"></param>
        void Add(T data);

        /// <summary>
        /// 批量新增数据。
        /// </summary>
        /// <param name="datas"></param>
        void Add(List<T> datas);

        /// <summary>
        /// 新增数据。
        /// </summary>
        /// <param name="data"></param>
        void AddOrModify(T data);

        /// <summary>
        /// 批量新增或修改数据。
        /// </summary>
        /// <param name="datas"></param>
        void AddOrModify(List<T> datas);

        /// <summary>
        /// 删除数据。
        /// </summary>
        /// <param name="id"></param>
        void RemoveById(dynamic id);

        /// <summary>
        /// 批量删除数据。
        /// </summary>
        /// <param name="ids"></param>
        void RemoveByIds(dynamic[] ids);

        /// <summary>
        /// 修改数据。
        /// </summary>
        /// <param name="data"></param>
        void ModifyById(T data);

        /// <summary>
        /// 查询指定数据。
        /// </summary>
        /// <typeparam name="TParam"></typeparam>
        /// <param name="id"></param>
        /// <returns></returns>
        T FindById<TParam>(TParam id);

        /// <summary>
        /// 查询所有数据。
        /// </summary>
        /// <returns></returns>
        List<T> FindAll();
    }
}
